Gatsby Default StarterGatsby logo

2.5

请看以下的正例和反例序列,它们描述的概念是“两个住在同一房间中的人”。每个训练样例描述了一个有序对,每个人由其性别、头发颜色(black、brown 或 blonde)、身高(tall、medium 或 short)以及国籍(US、French、German、Irish、Indian、Chinese 或 Portuguese)。

+ <<male brown tall US>, <female black short US>>
+ <<male brown short French>, <female black short US>>
- <<female brown tall German>, <female black short Indian>>
+ <<male brown tall Irish>, <female brown short Irish>>

考虑在这些实例上定义的假设空间为:所有假设以一对 4 元组表示,其中每个值约束与 Enjoy-Sports 中的假设表示相似,可以为:特定值、“?”或者“ø”。例如,下面的假设:

<<male ? tall ?> <female ? ? French>>

它表示了所有这样的有序对:第一个人为高个男性(国籍和发色任意),第二个人为法国女性(发色和身高任意)。

(a)根据上述提供的训练样例和假设表示,手动执行候选消除算法。特别是要写出处理了每一个训练样例后变型空间特殊一般边界

(b)计算给定的假设空间中有多少假设与下面的正例一致:

+ <<male black short Portuguese> <female blonde tall Indian>>

(c)如果学习器只有一个训练样例,如(b)中所示,现在由学习器提出查询,并由施教者给出其分类。求出一个特定的查询序列,以保证学习器收敛到单个正确的假设,而不论该假设是哪一个(假定目标概念可以使用给定的假设表示语言来描述)。求出最短的查询序列。这一序列的长度与问题(b)的答案有什么关联?

(d)注意到这里的假设表示语言不能够表示这些实例上的所有概念(如我们可定义出一系列的正例和反例,它们并没有相应的可描述假设)。如果要扩展这一语言,使其能够表达该实例语言上的所有概念,那么(c)的答案应该如何更改。


解答

(a)

  1. 初始化变型空间:S0=<<ø,ø,ø,ø>,<ø,ø,ø,ø>>S_0 = {<<ø, ø, ø, ø>, <ø, ø, ø, ø>>}, G0=<<?,?,?,?>,<?,?,?,?>>G_0 = {<<?, ?, ?, ?>, <?, ?, ?, ?>>}

    S0:{<<ø,ø,ø,ø>,<ø,ø,ø,ø>>}    
    G0:{<<?,?,?,?>,<?,?,?,?>>}
    候选消除算法步骤 1

  2. 处理第一个训练样例:发现 S0S_0 过于特殊了——因为它不能覆盖该正例。这一步中,S0S_0 会被一般化为 S1=<<male brown tall US>,<female black short US>>S_1 = {<<male\space brown\space tall\space US>, <female \space black \space short \space US>>} G0G_0 边界不需要修改,因为 G0G_0 能够正确地覆盖该样例。

    S0:{<<ø,ø,ø,ø>,<ø,ø,ø,ø>>}
    S1:{<<male,brown,tall,US>,<female,black,short,US>>}
    G0,G1:{<<?,?,?,?>,<?,?,?,?>>}
    候选消除算法步骤 2

    训练样例:1. + <<male brown tall US>, <female black short US>>

  3. 处理第二个训练样例时,同样需要将 S 进一步一般化到 S2S_2,G 仍旧不变(G2=G1=G0G_2=G_1=G_0)。

    S0:{<<ø,ø,ø,ø>,<ø,ø,ø,ø>>}
    S1:{<<male,brown,tall,US>,<female,black,short,US>>}
    S2:{<<male,brown,?,?>,<female,black,short,US>>}
    G0,G1,G2:{<<?,?,?,?>,<?,?,?,?>>}
    候选消除算法步骤 3

    训练样例:2. + <<male brown short French>, <female black short US>>

  4. 处理第三个训练样例时,这一反例显示,G 边界过于一般了,需要将 G 进一步特殊化到 G3G_3,S 保持不变。

    S0:{<<ø,ø,ø,ø>,<ø,ø,ø,ø>>}
    S1:{<<male,brown,tall,US>,<female,black,short,US>>}
    S2,S3:{<<male,brown,?,?>,<female,black,short,US>>}
    候选消除算法步骤 4

    G0,G1,G2:{<<?,?,?,?>,<?,?,?,?>>}

    G3: { << male, ?, ?, ?>, < ?, ?, ?, ?>>

    << ?, ?, ?, ?>, < ?, ?, ?, US>> }

    训练样例:3. - <<female brown tall German>, <female black short Indian>>

  5. 处理第四个训练样例时,变型空间中的 S 边界被更一般化。它也导致 G 边界中的一个成员被删除,因为这个成员不能覆盖新的正例。

    S0:{<<ø,ø,ø,ø>,<ø,ø,ø,ø>>}
    S1:{<<male,brown,tall,US>,<female,black,short,US>>}
    S2,S3:{<<male,brown,?,?>,<female,black,short,US>>}
    S4:{<<male,brown,?,?>,<female,?,short,?>>}
    候选消除算法步骤 4

    G0,G1,G2:{<<?,?,?,?>,<?,?,?,?>>}

    G3: { << male, ?, ?, ?>, < ?, ?, ?, ?>>

    << ?, ?, ?, ?>, < ?, ?, ?, US>> }

    G4: { << male, ?, ?, ?>, < ?, ?, ?, ?>> }

    训练样例:4. + <<male brown tall Irish>, <female brown short Irish>>

  6. 在处理完这 4 个样例后,边界集合 S4S_4G4G_4 划分出的变型空间包含了与样例一致的所有假设的集合。如果提供更多的训练数据,S 和 G 的边界将继续单调移动并相互靠近,划分出越来越小的变型空间来。

    G4: { << male, ?, ?, ?>, < ?, ?, ?, ?>> }

    << male, brown, ?, ?>, < ?, ?, ?, ?>>

    << male, ?, ?, ?>, < female, ?, ?, ?>>

    << male, ?, ?, ?>, < ?, ?, short, ?>>





    << male, ?, ?, ?>, < female, ?, short, ?>>

    << male, brown, ?, ?>, < ?, ?, short, ?>>

    << male, brown, ?, ?>, < female, ?, ?, ?>>





    S4:{<<male,brown,?,?>,<female,?,short,?>>}
    最终的变型空间

    这一变型空间不依赖于训练样本出现的次序(因为最终它包含了与训练样例集一致的所有假设)。

(b)在(a)的结果变型空间中,有 8 个假设,其中 <<male,?,?,?>,<female,?,?,?>><<male, ?, ?, ?>, <female, ?, ?, ?>> 与新出现的正例一致:+ <<male black short Portuguese> <female blonde tall Indian>>

(c)如果学习器可以主宰实验进程,它要自己选择一个实例,然后从外界(自然界或者一个施教者)获得该实例的正确分类结果。在这里,我们用查询(query)来代表学习器建立的这个实例,然后由外界来对它分类。

这时学习器怎样能提出一个较好的查询?显然,学习器应试图在当前变型空间中选择假设,以进一步划分该空间。因此,需要选择的实例需要满足:它能被变型空间中的一些假设分类为正例,另一些分类为反例。如果施教者将实例划分为正例,变型空间 S 边界就需要被一般化;如果施教者将实例划分为反例,变型空间 G 边界就需要被特殊化。无论哪种情况,机器将能够学到更多的知识,以确定目标概念并将变型空间缩小到原来的一半。

一般来说,概念学习的最优查询策略,是产生实例以满足当前变型空间中大约半数的假设。这样,变型空间的大小可以在遇到每个新样例时减半,正确的目标概念就可在只用 log2VS\lceil log_2|VS| \rceil 次实验后得到。当然,在一般情况下,可能无法构造出这样的精确分半的实例,这样,查询的数目可能会大于 log2VS\lceil log_2|VS| \rceil 次。

在(b)的答案中我们知道最终的变型空间中有 8 个假设,所以学习器需要提出 3 次查询才能收敛到一个正确的假设。一个可行的查询序列如下:

第一个查询需要满足变型空间的 8 个假设中的 4 个((b)中的实例就不是一个好的查询,因为它只能满足一个假设),比如:

<<male brown short Portuguese>, <female blond tall Indian>>

就能且仅能满足 4 个假设,即:

<<male ? ? ?>, <? ? ? ?>>
<<male brown ? ?>, <? ? ? ?>> 
<<male ? ? ?>, <female ? ? ?>> 
<<male brown ? ?>, <female ? ? ?>>

这样变型空间就会被缩小到 4 个假设。

假设这个查询被分类为正例,那么变型空间的 S 边界将被一般化(一般成 S5: {<<male, brown, ?, ?>, <female, ?, ?, ?>>}),G 边界中与这个查询不一致的假设将被删除。这时,变型空间将变为:

G4: { << male, ?, ?, ?>, < ?, ?, ?, ?>> }

<< male, brown, ?, ?>, < ?, ?, ?, ?>>

<< male, ?, ?, ?>, < female, ?, ?, ?>>



S5:{<<male,brown,?,?>,<female,?,?,?>>}

这时,学习器需要提出第二个查询,以满足且仅满足这 4 个假设中的 2 个,比如:

<<male brown short Portuguese>, <male blond tall Indian>>

假设这个查询被分类为反例,则变型空间会变成:

G5: {<< male ? ? ?>, < female ? ? ?>>}

S5: {<< male brown ? ?>, < female ? ? ? >>}

接下来,再提出一个查询,比如: <<male black short Portuguese>, <female blond tall Indian>>,就能找到唯一的正确假设。

如果这个查询被分类为正例,那么变型空间将变为:

G6, S6: {<< male ? ? ?>, < female ? ? ?>>}

(d)每个人可能是男性或者女性,头发颜色有 3 种,身高有 3 种可能,而国籍有 7 种可能。因此一个人的特征可能有 2×3×3×7=1262 \times 3 \times 3 \times 7 = 126 种可能。而一个样例是一个有序对,所以有 126×126=15876126 \times 126 = 15876 种可能。这样,我们需要一个 15876 元素的假设空间来表示这些样例。这个假设空间的大小是原来的 1984 倍。这样,学习器需要提出 14 次查询才能收敛到一个正确的假设。


  1. 候选消除算法计算出的变型空间,包含 H 中与训练样例的观察序列一致的所有假设。开始,变型空间被始化为 H 中所有假设的集合。即将 G 边界集合初始化为 H 中最一般的假设:
    G0<?,?,?,?,?,?>G_0 \gets {<?, ?, ?, ?, ?, ?>}
    并将 S 边界集合初始化为最特殊(最不一般)的假设:
    S0<ø,ø,ø,ø,ø,ø>S_0 \gets {<ø, ø, ø, ø, ø, ø>}
    这两个边界集合包含了整个假设空间。因为 H 中所有假设都比 S0S_0 更一般,且比 G0G_0 更特殊。算法在处理每个训练样例时,S 和 G 边界集合分别被一般化和特殊化,从变型空间中逐步消去与样例不一致的假设。在所有训练样例处理完后,得到的变型空间就包含了所有与样例一致的假设,而且只包含这样的假设。
  2. 变型空间是指在候选消除算法中,每次处理一个训练样例后,假设空间的变化。定义:关于假设空间 H 和训练样例集 D 的变型空间,标记为 VSH, D,是 H 中与训练样例 D 一致的所有假设构成的子集。VSH,D{hHConsistent(h,D)}VS_{H, D} \equiv \{ h \in H | Consistent(h, D) \}
    一个假设 h 与训练样例集合 D 一致,当且仅当对 D 中每一个样例<x, c(x)>,h 都正确地分类 x,即 h(x) = c(x)。定义:假设 h 与训练样例集 D 一致,当且仅当对 D 中每一个样例<x, c(x)>都有 h(x) = c(x)。
    Consistent(h,D)<x,c(x)>Dh(x)=c(x)Consistent(h, D) \equiv \forall <x, c(x)> \in D h(x) = c(x)
  3. 关于假设空间 H 和训练数据 D 的特殊边界(specific boundary)S,是在 H 中与 D 相一致的极大特殊(maximally specific)成员的集合。
    S{sHConsistent(s,D)(¬sH)[(s>gs)Consistent(s,D)]}S \equiv \{s \in H | Consistent(s, D) \land (\lnot \exists s' \in H) [(s > _gs') \land Consistent(s', D)]\}
  4. 关于假设空间 H 和训练数据 D 的一般边界(general boundary)G,是在 H 中与 D 相一致的极大一般(maximally general)成员的集合。
    G{gHConsistent(g,D)(¬gH[(g>gg)Consistent(g,D)]}G \equiv \{g \in H | Consistent(g, D) \land (\lnot \exists g' \in H [(g' > _gg) \land Consistent(g', D)]\}